
package SSF.Net;

import java.util.*;

import SSF.Net.Util.*;
import SSF.OS.*;
import com.renesys.raceway.DML.*;
import com.renesys.raceway.SSF.*;

/** Link layer interface -- determines link-layer routing semantics for 
  * packets written on any attached interface of the associated link.  
  */
public interface linkLayer {
/** Return a reference to the link for which this is the linkLayer 
  * implementation. 
  */
  public link onLink();

/** Bring up the given NIC over this link layer */
  public void up(NIC nic);

/** Send a packet with the given delay on behalf of the NIC */
  public void transmit(NIC forNIC, PacketEvent pevt, long qdelay);

/** Poll the link layer for any packets currently available for receipt */
  public /*SSF.*/Event[] receive(NIC forNIC);
 
/** Return the attached interfaces that are peers to the given interface. */
  public Enumeration peers(NIC forNIC);
}




/*=                                                                      =*/
/*=  Copyright (c) 1997--2000  SSF Research Network                      =*/
/*=                                                                      =*/
/*=  SSFNet is open source software, distributed under the GNU General   =*/
/*=  Public License.  See the file COPYING in the 'doc' subdirectory of  =*/
/*=  the SSFNet distribution, or http://www.fsf.org/copyleft/gpl.html    =*/
/*=                                                                      =*/
